package ehz.spen.fantasypremierleague.info;

import java.util.ArrayList;

public class League {
    private final int STATE_DOWN = 0; // user position is down
    private final int STATE_UNCHANGE = 1; // // user position is unchange
    private final int STATE_UP = 2; // // user position is up

    private int id;
    private int type; // Constant.LEAGUE_CLASSIC, Constant.LEAGUE_HEAD_TO_HEAD, Constant.LEAGUE_GLOBAL,
                      // Constant.LEAGUE_CUP

    private String name;
    private int position; // user position in league
    private int state; // STATE_DOWN, STATE_UNCHANGE, STATE_UP

    private final ArrayList<User> userList = new ArrayList<User>();

    // === with LEAGUE_HEAD_TO_HEAD ===
    // from position 1 -> last
    // 1 user
    private ArrayList<Integer> winList = new ArrayList<Integer>();
    private ArrayList<Integer> drawList = new ArrayList<Integer>();
    private ArrayList<Integer> lostList = new ArrayList<Integer>();
    private ArrayList<Integer> overallPointList = new ArrayList<Integer>();
    private ArrayList<Integer> pointList = new ArrayList<Integer>();

    // Ex: Gameweek 6: Eagle 100 - 90 Chelsea_Mourinho
    // special char: SC. Ex: $@_@$
    // a string: 6 + SC + Eagle + SC + 100 + SC + 90 + Chelsea_Mourinho
    private ArrayList<String> currentWeek = new ArrayList<String>();

    // Ex: Gameweek 7: Eagle vs Chelsea_Mourinho
    // a string: 7 + SC + Eagle + SC + Chelsea_Mourinho
    private ArrayList<String> nextWeek = new ArrayList<String>();

    // === with LEAGUE_CUP ===
    // start from week 18, as knock out rule
    // Ex: Gameweek 18: Eagle 100 - 90 Chelsea_Mourinho
    // a string: 18 + SC + Eagle + SC + 100 + SC + 90 + Chelsea_Mourinho
    private ArrayList<String> weekHistory = new ArrayList<String>();

    public League(int id, int type, String name) {
        super();
        this.id = id;
        this.type = type;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getPosition() {
        return position;
    }

    public void setPosition(int position) {
        this.position = position;
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public ArrayList<User> getUserList() {
        return userList;
    }

    public ArrayList<Integer> getWinList() {
        return winList;
    }

    public void setWinList(ArrayList<Integer> winList) {
        this.winList = winList;
    }

    public ArrayList<Integer> getDrawList() {
        return drawList;
    }

    public void setDrawList(ArrayList<Integer> drawList) {
        this.drawList = drawList;
    }

    public ArrayList<Integer> getLostList() {
        return lostList;
    }

    public void setLostList(ArrayList<Integer> lostList) {
        this.lostList = lostList;
    }

    public ArrayList<Integer> getOverallPointList() {
        return overallPointList;
    }

    public void setOverallPointList(ArrayList<Integer> overallPointList) {
        this.overallPointList = overallPointList;
    }

    public ArrayList<Integer> getPointList() {
        return pointList;
    }

    public void setPointList(ArrayList<Integer> pointList) {
        this.pointList = pointList;
    }

    public ArrayList<String> getCurrentWeek() {
        return currentWeek;
    }

    public void setCurrentWeek(ArrayList<String> currentWeek) {
        this.currentWeek = currentWeek;
    }

    public ArrayList<String> getNextWeek() {
        return nextWeek;
    }

    public void setNextWeek(ArrayList<String> nextWeek) {
        this.nextWeek = nextWeek;
    }

    public ArrayList<String> getWeekHistory() {
        return weekHistory;
    }

    public void setWeekHistory(ArrayList<String> weekHistory) {
        this.weekHistory = weekHistory;
    }

}
